home *** CD-ROM | disk | FTP | other *** search
/ HyperLib 1997 Winter - Disc 1 / HYPERLIB-1997-Winter-CD1.ISO.7z / HYPERLIB-1997-Winter-CD1.ISO / オンラインウェア / UTIL / GripGrop 1.1 68K.sit / GripGrop 1.1 68K / GripGrop・取扱説明書 next >
Text File  |  1996-11-19  |  14KB  |  358 lines

  1. GripGrop / 取扱説明書
  2. GripGrop Is Not Grep
  3.  
  4. Icon Design : Satomi "COCO" Nakano
  5. Program : Takeshi "OSTRA" Yoneki
  6. Copyright (C) 1996 Takeshi Yoneki / OSTRACISM CO.
  7. アイコンデザイン:中野 里美
  8. 作成:米木 武
  9. 著作:米木 武 / OSTRACISM CO. / 1996年
  10.  
  11. レポート宛先
  12. Nifty-Serve : GCC01675
  13.  
  14. 1996.04.20 グリグロって呼んでいいよ
  15. 1996.04.22 書きはじめる
  16. 1996.04.28 初版
  17. 1996.11.18 1.1
  18.  
  19.  
  20. 1.はじめに
  21.  
  22.  「GripGrop」はシェアウエアです。
  23.  「GripGrop」を使って発生したいかなる問題も作成者は責任を持ちません。
  24.  「GripGrop」をBBSで再配布する場合、配布後でかまいませんのでメールをお願いします。CD-ROMで再配布する場合、事前に作成者宛に報告をお願いします。通常めったなことでは再配布を拒否することはありません。また、CD-ROMに収録した場合、そのCD-ROMを1部送付してくださるようお願いします。ただし強制はいたしません。
  25.  
  26.  「GripGrop」は単体ではフリーウエアです。ただし「Saneatsu Lite(實篤)」1.1以降、「HUNDOSHI-EDIT(褌・エディット)」1.6以降との組み合わせによりシェアウエアとなります。
  27.  
  28.  「GripGrop」1.0以降
  29.  「Saneatsu Lite(實篤)」1.1以降
  30.  「HUNDOSHI-EDIT(褌・エディット)」1.6以降
  31.  これらのうち2本以上を常用する場合、合計4000円となります。
  32.  
  33. 郵便振替
  34.  口座番号:00110-9-583020
  35.  名称  :米木 武 (よねきたけし)
  36.  振り込み用紙の通信欄にメールアドレスをお願いします。
  37.  
  38. 銀行振込
  39.  銀行  :第一勧業銀行 新宿西口支店
  40.  店番号 :062
  41.  口座番号:2121247
  42.  名前  :米木 武
  43.  カタカナ  :ヨネキ タケシ
  44.  できましたら振り込み後に振り込んだ旨メールをください。その際振り込んだ日付を必ずご記入下さい。
  45.  
  46. ニフティサーブ・シェアウエア送金代行システム
  47.  ニフティサーブの「シェアウエア送金代行システム,GO SWREG」で送金できます。
  48.  シェアウエア番号は3252です。
  49.  登録の都合上3本独立にシェアウエア番号がありますが、どれかひとつだけを使ってください。
  50.  
  51. 2.使用方法と利用環境について
  52.  
  53.  「GripGrop」はテキストファイルから文字列を探すというツールです。起動後、Search-Findメニューを選択すると検索ダイアログが表示されます。ここで検索すべき文字列や検索場所、ファイル名のマスク、サブディレクトリ検索の有無などを設定して「Do Search」ボタンを押します。すると検索が始まって、見つかった部分が一覧に表示されます。
  54.  「GripGrop」は汎用的に作られた検索ソフトです。単体で使っても効果はあるのですが、他のアプリケーション、特に「褌・エディット」と「實篤」とのコンビネーションが最適です。
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  「實篤」の検索メニューで「GripGrop」が起動し、検索結果をダブルクリックすると「實篤」の該当部分が表示されます。この場合「GripGrop」はまるで「實篤」の機能の一部のように動作します。
  66.  「褌・エディット」のSearch Text Filesメニューで「GripGrop」が起動し、検索結果をダブルクリックするとやはり該当部分が「褌・エディット」で表示されます(テキストのクリエータによっては別のエディタで表示されることもあります)。
  67.  該当部分の選択表示機能は現在「實篤」と「褌・エディット」のみが対応しています。
  68.  
  69. 3.バグレポートについて
  70.  
  71.  「GripGrop」作成にはC++を使って防衛的プログラミングを実践していますが、全く問題がないなどとはいいきれません。「GripGrop」の動作上の不具合が発見されたならば、ニフティサーブFMACPROフォーラムのDebug Folder会議室または作成者の米木宛のメールにてレポートをお願いします。
  72.  
  73. 4.特徴
  74.  
  75.  a.テキストファイルから単語を高速に検索します。
  76.  b.テキストを含むバイナリファイルも検索対象にできます。
  77.  c.検索ヒットした文書をエディタなどで開けます。
  78.  d.「實篤」と「褌・エディット」との連携動作ができます。
  79.  e.シンプルです。
  80.  f.約8000件までヒットしたアイテムを表示できます。
  81.  
  82. 5.開発環境
  83.  
  84.  Macintosh IIcx + DayStar PowerCache 030 50MHz
  85.  漢字Talk 7.5.3 + MODE32
  86.  PowerMacintosh 6100/60AV
  87.  漢字Talk 7.5.3
  88.  CodeWarrior 10 Gold / C++
  89.  ResEdit 2.1.3
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100. 6.動作環境
  101.  
  102.  Macintosh Plus以降 + 漢字Talk 6.0.7以降
  103.  TSMTE(インライン追加機能)は1.3以降を推奨します。
  104.  ことえりは1.1以降を推奨します。
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113. 7.GripGrop Is Not Grep
  114.  
  115.  「GripGrop」はgrepではありません。正規表現に対応しないからです。何か似ているものを敢えてあげるとすればfgrepでしょうか。「GripGrop」は複数ファイルから固定した文字列を検索し、それを一覧表示します。また、その一覧から元の文書をApple EventのOpen Documentsを使って開きます。
  116.  「GripGrop」は茄子互換ログブラウザ「實篤」とのコンビネーションを考えて作成されました。「實篤」(1.1以降)の検索メニューを選択すると、実際に動き出すのは「GripGrop」です。検索をして、見つかった一覧をダブルクリックすると「實篤」で該当発言やメールが表示されます。この仕組もApple EventのOpen Documentsを使っています。ただし、独自に拡張している部分があります。
  117.  また「GripGrop」はテキストエディタの「褌・エディット」(1.6以降)とのコンビネーションも考えています。見つかった一覧をダブルクリックするときに「褌・エディット」を使うように設定すると(デフォルトはほぼそうです)、文書を開いて、見つかった文字列を選択状態にします。他のエディタでは選択状態にはなりません。
  118.  
  119.  ともかく文書を開くところは汎用に使えます。デフォルト設定では英語版MS-WORD文書も検索対象にされていますが、一覧のダブルクリックで起動するワープロは有限会社パスカルの「PascalWrite」になっています。「PascalWrite」で英語版MS-WORD文書をきちんと開けるようにするには、別途Claris Translatorをシステムにインストールする必要があります。これはデベロッパ向けCD-ROMに入っている膨大な量の英語版MS-WORD文書を、少しでも楽に読みたいという作成者自身のニーズです。
  120.  残念なことにAcrobat文書はテキスト部分がスクランブルされているため、GripGropの検索ではヒットしません。
  121.  
  122.  「GripGrop」は「實篤」とのコンビネーションを実装した結果、ドラッグ&ドロップにも対応しています。検索したい文書またはフォルダを「GripGrop」アイコンにドラッグ&ドロップすると、それをデフォルトの設定として、検索ダイアログが表示されます。これは「實篤」と「GripGrop」間の検索依頼通知に、一般的なApple EventのOpen Documentsを使っているからです。
  123.  
  124.  「GripGrop」は文書を開くときに、その文書のクリエータ(文書を作成したアプリケーションの識別子)によって「何を使って開くか」を設定できます。基本的には「文書を作成したアプリケーション」ではなく、あくまで設定した少数のアプリケーションで開くという考え方となっています。これはファイルタイプ'TEXT'を作成するアプリケーションは各種エディタやワープロなど多岐にわたっており、使わない(または持っていない)エディタやワープロのクリエータを持つ文書を読むということが多く、また一般的だからです。
  125.  
  126.  「GripGrop」の検索アルゴリズムは改行コードに依存していません。ある種バイナリサーチに近いかもしれません。検索結果は行番号ではなく、ファイル上のバイト位置です。長い間マック上のテキスト検索ツールのありかたを考えてきましたが、これが現在の回答です。GripGropが扱うデータはボリューム名、ディレクトリID、ファイル名、ファイル上のバイト位置です。行番号を廃止したところがgrepではないゆえんです。
  127.  シンプルで高速に動作するアルゴリズムですので、検索エンジンそのものの高機能化は考えていません。正規表現なんてやったら10倍は遅くなることは容易に想像できます。
  128.  
  129.  C文字列のポインタを使うLDEFを使うことにより約8000件までの検索結果をリスト表示できます。ただしデフォルトで割り振られているアプリケーションメモリでは足りないので、たくさんヒットするような検索をするときはアプリケーションメモリを適切に与えてください。
  130.  
  131.  PPC化したにもかかわらずたいしてスピードは速くなっていません。System 7.5.3の68Kエミュレーションが優秀になったことと、やはり処理のほとんどがファイル入出力であるためだと思われます。
  132.  
  133. 8.メニュー
  134.  
  135. 8.1.File
  136.  
  137. Open Log File...
  138.  検索結果のログファイルを開きます。
  139.  ディスクの名前やディレクトリの構成、ファイルの内容が変化してない限り有効に使えます。
  140.  
  141. Save Log File...
  142.  検索結果のログファイルを保存します。
  143.  
  144. Get Info...
  145.  検索結果一覧で現在選択されている部分の詳しい情報ダイアログをポップアップします。
  146.  
  147. Launch Document
  148.  検索結果一覧で現在選択されている文書を開きます。
  149.  
  150. Quit
  151.  アプリケーションを終了します。
  152.  
  153. 8.2.Edit
  154.  
  155.  検索結果を1行ずつ文字列としてコピーできます。他には機能はありません。
  156.  
  157. 8.3.Search
  158.  
  159. Find...
  160.  検索ダイアログをポップアップします。
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178. Search String
  179.  検索する文字列を入力します。
  180. File Name ***
  181.  入力された文字列によるファイル名の検索対象条件を有効にします。
  182.  contains を含む
  183.  starts with で始まる
  184.  ends with で終る
  185.  is の項目
  186.  is not ではない項目
  187.  doesn't contain を含まない
  188. Select Directory
  189.  検索対象とするディレクトリ(フォルダ)を指定します。
  190.  リストボックスでフォルダを選択して下のフォルダ名のボタンまたは「選ぶ」ボタンをクリックください。
  191.  ファイルを選択して「開く」ボタンをクリックすると、そのファイルのあるフォルダが選択されます。
  192. Ignore Case
  193.  英文字の大文字と小文字を同じものとして検索します。
  194.  ウムラルトやダッシュなどのついたローマン文字や全角の英文字は対象外です。
  195. Search Sub-Directories
  196.  サブディレクトリも検索します。
  197. Ignore Delimiter
  198.  デリミタ文字(改行、空白、ハイフン、タブ)を挟んだ単語もヒットさせます。
  199.  通信のログを検索するときは単語が改行で分断されていることが多いので、このチェックをすると良いでしょう。
  200. Boyer-Moore Method (High Speed)
  201.  Boyer-Moore法を使った高速検索をします。
  202.  アルゴリズムの特性上、漢字一文字を検索させると漢字の後半と次の漢字の前半でもヒットしてしまいます。例えば「實」という字を検索させると「中央会議」といった単語でもヒットします。「實」はシフトJISコードで0x9B89ですが、「央」が0x899Bで「会」が0x89EFなので並ぶと0x9B89が存在することになります。十分に長い文字列を検索させるならば、誤ヒットは無視できるでしょう。
  203.  このスイッチは「Ignore Delimiter」と一緒には選択できません。
  204. Do Search
  205.  検索を開始します。
  206.  
  207. Launch Option...
  208.  起動に使うアプリケーションの登録ダイアログをポップアップします。
  209.  ここで設定していないアプリケーションで作成された文書はMisc Option...のMain Text Editorで設定されたエディタで開きます。
  210.  
  211.  
  212.  
  213.  
  214.  
  215.  
  216.  
  217.  
  218.  
  219.  
  220.  
  221.  
  222.  
  223.  
  224.  
  225. クリエータの設定のデフォルト値
  226.  作成アプリ                  起動アプリ
  227.  茄子                        實篤
  228.  實篤                        實篤
  229.  褌・エディット              褌・エディット
  230.  CodeWarrior                 CodeWarrior
  231.  THINK Pascal                CodeWarrior
  232.  THINK Project Manager       CodeWarrior
  233.  MPW                         CodeWarrior
  234.  PascalWrite                 PascalWrite
  235.  英語版MS-WORD               PascalWrite
  236.  英語版MacWrite              PascalWrite
  237.  英語版MacWrite II           PascalWrite
  238.  NisusWriter                 NisusWriter
  239.  DocViewer                   DocViewer
  240.  
  241. File Type Option...
  242.  検索対象とするファイルタイプの登録ダイアログをポップアップします。
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257. ファイルタイプ設定のデフォルト値
  258.  テキスト
  259.  SimpleTextリードオンリー
  260.  PascalWrite
  261.  英語版MS-WORD
  262.  英語版MacWrite
  263.  英語版MacWrite II
  264.  DocViewer
  265.  
  266. Misc Option...
  267.  その他の設定のダイアログをポップアップします。
  268.  
  269.  
  270.  
  271.  
  272.  
  273.  
  274.  
  275.  
  276.  
  277.  
  278.  
  279.  
  280.  
  281.  
  282.  
  283.  
  284.  
  285.  
  286. Show Volume Name
  287.  検索結果一覧にボリューム名を表示します。
  288. Show Directory ID
  289.  検索結果一覧にディレクトリIDを表示します。
  290. Show File Name
  291.  検索結果一覧にファイル名を表示します。
  292. Show Position
  293.  検索結果一覧にファイル上の位置を表示します。
  294. Show Data
  295.  検索結果一覧に発見した文字列付近のデータを表示します。
  296. Main Text Editor
  297.  主に使うテキストエディタをクリエータで指定します。
  298. Don't Beep After Search
  299.  検索終了後ビープ音を出しません。
  300. Double Click on List
  301.  検索結果一覧のダブルクリックでの動作を指定します。
  302.  Launch Document 検索結果一覧のダブルクリックで文書を起動します。
  303.  Get Info 検索結果一覧のダブルクリックで詳しい情報を表示します。
  304.  
  305. 9.キーボードでの操作
  306.  
  307. ↓矢印
  308.  次の検索結果を選択します。
  309. ↑矢印
  310.  前の検索結果を選択します。
  311. リターン
  312.  検索結果のGetInfoダイアログを表示します。
  313. オブション+リターン
  314.  検索結果の文書を起動します。
  315.  
  316. 10.Apple Event
  317.  
  318.  「GripGrop」はOpen DocumentsのApple Eventを受け取り、その値をデフォルトとして検索ダイアログをポップアップさせます。Open DocumentsのApple Eventはファイルやフォルダのドラッグ&ドロップをした際にFinderから送られます。「實篤」や「褌・エディット」は直接「GripGrop」にOpen DocumentsのApple Eventを送ります。
  319.  フォルダをドラッグ&ドロップするとそのフォルダを検索対象とします。ファイル名マスクはオフになります。
  320.  ファイルをドラッグ&ドロップするとそのファイルのあるフォルダを検索対象とします。ファイル名マスクはドラッグ&ドロップしたファイルの名前でオンになります。
  321.  ドラッグ&ドロップの対象は最初に受け取った1つだけが有効になります。複数ファイルのドラッグ&ドロップは2つめ以降が無視されます。受け取る順序は名前順のようです。
  322.  「實篤」はファイルのドラッグ&ドロップに、「褌・エディット」はフォルダのドラッグ&ドロップにそれぞれ相当するOpen DocumentsのApple Eventを送ります。
  323.  「GripGrop」の受け取るOpen DocumentsのApple Eventは以下に述べる独自に拡張された部分はありません。
  324.  
  325.  「GripGrop」は一覧をダブルクリックされたらその文書を開くために、あらかじめ設定されているアプリケーションを起動し、Open DocumentsのApple Eventを送ります。「實篤」と「褌・エディット」以外のアプリケーションには独自に拡張されたOpen DocumentsのApple Eventは送りません。起動対象が「實篤」または「褌・エディット」のときは独自に拡張されたOpen DocumentsのApple Eventを送ります。
  326.  独自に拡張されたOpen DocumentsのApple Eventの概要は以下の通りです。
  327.  1.拡張パラメタとして選択開始位置と選択終了位置を付加します。
  328.  2.拡張パラメタがあったら2つめ以降の文書を無視します。
  329.  以下は詳細です。
  330. ----------
  331. 独自に拡張されたOpen Documents
  332.  
  333. イベントクラス:kCoreEventClass
  334. イベントID:kAEOpenDocuments
  335. 必須パラメタ:
  336. FSSpec List
  337.  キーワード:keyDirectObject
  338.  デスクリプタタイプ:typeAEList
  339.  データ:開くべきドキュメントを示すalias recordのリスト
  340. 拡張パラメタ(オプション)
  341. SelStart
  342.  キーワード:'selS'
  343.  デスクリプタタイプ:typeLongInteger
  344.  データ:セレクト開始位置
  345. SelEnd
  346.  キーワード:'selE'
  347.  デスクリプタタイプ:typeLongInteger
  348.  データ:セレクト終了位置
  349. ----------
  350.  これは暫定処置として定義しましたので、後には独立したイベントクラス、イベントIDを定義したいと考えています。
  351.  
  352. 11.Grep Is Not GripGrop
  353.  
  354.  「GripGrop Is Not Grep」というのは再帰的命名ではなく、ただの事実です。
  355.  「GripGrop」はgrepの機能とDrag and Dropの操作性を想像させるという条件で考えた名前です。もちろんflip-flop回路のもじりでもあります。
  356.  
  357. (P)1996 OSTRACISM CO. System Technology Development
  358.